﻿//IChartIndicatorPainter.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace StockSharp.Xaml
{
	using System;
	using System.Collections.Generic;
	using System.Windows.Forms.DataVisualization.Charting;

	using StockSharp.Algo.Indicators;

	/// <summary>
	/// Интерфейс, описывающий рендерер индикатора на графике (например, линии, гистограммы и т.д.).
	/// </summary>
	public interface IChartIndicatorPainter
	{
		/// <summary>
		/// Элемент графика, представляющий индикатор.
		/// </summary>
		ChartIndicatorElement Indicator { get; set; }

		/// <summary>
		/// Инициализировать рендерер.
		/// </summary>
		/// <param name="areaName">Название области.</param>
		/// <param name="isIndexed">Индексирована ли область.</param>
		/// <returns>Графические данные.</returns>
		IDictionary<IIndicator, Series> Init(string areaName, bool isIndexed);

		/// <summary>
		/// Обработать новые значения.
		/// </summary>
		/// <param name="time">Временная отметка формирования новых данных.</param>
		/// <param name="yValues">Значения индикатора.</param>
		/// <returns>Новые значения для отображения на графике.</returns>
		IEnumerable<decimal> ProcessValues(DateTime time, IDictionary<IIndicator, IIndicatorValue> yValues);
	}
}